package com.rw.test;

import java.util.ArrayList;

//玩家类
public class Player {

    //========================空参构造================================
    Player() {
         hp = 3;  //生命值

         dice = 5;  //骰子数量

         handLimit = 2; //手牌上限

         heroLimit = 5; //武将上限

        int[] diceSet = {0, 0, 1, 1, 2, 3};//初始骰子设置为杀杀闪闪酒桃

    }

    //========================内部参数================================
    String name = "无名之辈";

    int hp;  //生命值

    int dice;  //骰子数量

    int dice_kill; //投掷出杀的数量

    int dice_killAfter; //修正后杀的数量

    int dice_dodge;  //投掷出闪的数量

    int dice_dodgeAfter;  //修正后闪的数量

    int dice_peach;  //投掷出桃的数量

    int dice_peachAfter;  //修正后桃的数量

    int dice_liquor;  //投掷出酒的数量

    int dice_liquorAfter;  //修正后酒的数量

    int dmg;  //基于投掷结果得出的伤害

    int dmg_skillFix;  //经过技能修正的伤害

    int dmg_weaponFix;  //经过武器修正的伤害

    int dmg_frameFix;  //经过机制修正的伤害

    int dmg_final;  //最终伤害


    //========================手牌部分================================

    // 手牌上限
    int handLimit;

    // 当前手牌的列表
    ArrayList<Cards> handCard = new ArrayList<>();

    //  准备加入手牌的卡牌的列表
    ArrayList<Cards> handCardPreparing = new ArrayList<>();

    /**
     * 合法且可选择地将卡牌加入手牌
     *
     * @param player 当前角色
     */
    public void add(Player player) {
        if (player.handCard.size() == player.handLimit) {
            System.out.println("手牌已达上限，获得手牌失败！");
        } else if (player.handCard.size() + player.handCardPreparing.size() >= player.handLimit) {
            System.out.println("卡牌超限，不能全部加入手牌！请逐个选择要加入手牌的卡牌。");
            for (int i = 0; player.handLimit - player.handCard.size() > 0; i++) {
                System.out.println(Tool.cardsShow(player));
                Tool.numGet(player.handLimit - player.handCard.size());
                player.handCard.add(
                        player.handCardPreparing.get(Tool.numGet(player.handLimit - player.handCard.size())));
            }
        } else {
            // 可以全部拿下
            for (int i = 0; player.handCardPreparing.size() >= i; i++) {
                System.out.println("成功！");
                Tool.numGet(player.handLimit - player.handCard.size());
                player.handCard.add(
                        player.handCardPreparing.get(Tool.numGet(player.handLimit - player.handCard.size())));
            }
        }
    }

    //========================武将部分================================

    int heroLimit; //武将上限

    //========================骰子部分================================
    // 六面骰子，0为杀，1为闪，2为酒，3为桃
    int[] diceSet = new int[6];


}
